package com.loong.loong.hik.api.entity.resource;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 【门禁点】DoorDTO属性说明
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_resource_acs_device")
public class HikResourceAcsDevice {

	private static final long serialVersionUID = 1L;

	/**
	 * 门禁点唯一标识
	 */
	@NotNull(message = "门禁点唯一标识不能为空")
	@Size(max = 64, message = "门禁点唯一标识长度不能超过64")
	@TableId(value = "index_code", type = IdType.ASSIGN_UUID)
	private String indexCode;

	/**
	 * 门禁点名称
	 */
	@NotNull(message = "门禁点名称不能为空")
	@Size(max = 32, message = "门禁点名称长度不能超过32")
	@TableField("name")
	private String name;

	/**
	 * 资源类型
	 */
	@NotNull(message = "资源类型不能为空")
	@Size(max = 64, message = "资源类型长度不能超过64")
	@TableField("resource_type")
	private String resourceType;

	/**
	 * 门禁点编号
	 */
	@NotNull(message = "门禁点编号不能为空")
	@Size(max = 16, message = "门禁点编号长度不能超过16")
	@TableField("door_no")
	private String doorNo;

	/**
	 * 描述
	 */
	@Size(max = 128, message = "描述长度不能超过128")
	@TableField("description")
	private String description;

	/**
	 * 父级资源编号
	 */
	@Size(max = 32, message = "父级资源编号长度不能超过32")
	@TableField("parent_index_code")
	private String parentIndexCode;

	/**
	 * 所属区域唯一标识
	 */
	@NotNull(message = "所属区域唯一标识不能为空")
	@Size(max = 64, message = "所属区域唯一标识长度不能超过64")
	@TableField("region_index_code")
	private String regionIndexCode;

	/**
	 * 所属区域路径
	 */
	@NotNull(message = "所属区域路径不能为空")
	@Size(max = 340, message = "所属区域路径长度不能超过340")
	@TableField("region_path")
	private String regionPath;

	/**
	 * 通道类型
	 */
	@Size(max = 16, message = "通道类型长度不能超过16")
	@TableField("channel_type")
	private String channelType;

	/**
	 * 通道号
	 */
	@Size(max = 16, message = "通道号长度不能超过16")
	@TableField("channel_no")
	private String channelNo;

	/**
	 * 安装位置
	 */
	@Size(max = 16, message = "安装位置长度不能超过16")
	@TableField("install_location")
	private String installLocation;

	/**
	 * 设备能力集
	 */
	@Size(max = 256, message = "设备能力集长度不能超过256")
	@TableField("capability")
	private String capability;

	/**
	 * 一级控制器id
	 */
	@NotNull(message = "一级控制器id不能为空")
	@Size(max = 48, message = "一级控制器id长度不能超过48")
	@TableField("control_one_id")
	private String controlOneId;

	/**
	 * 二级控制器id
	 */
	@Size(max = 48, message = "二级控制器id长度不能超过48")
	@TableField("control_two_id")
	private String controlTwoId;

	/**
	 * 读卡器1编号
	 */
	@NotNull(message = "读卡器1编号不能为空")
	@Size(max = 48, message = "读卡器1编号长度不能超过48")
	@TableField("reader_in_id")
	private String readerInId;

	/**
	 * 读卡器2编号
	 */
	@Size(max = 48, message = "读卡器2编号长度不能超过48")
	@TableField("reader_out_id")
	private String readerOutId;

	/**
	 * 门序号
	 */
	@NotNull(message = "门序号不能为空")
	@TableField("door_serial")
	private Integer doorSerial;

	/**
	 * 创建时间
	 */
	@NotNull(message = "创建时间不能为空")
	@Size(max = 64, message = "创建时间长度不能超过64")
	@TableField("create_time")
	private String createTime;

	/**
	 * 更新时间
	 */
	@NotNull(message = "更新时间不能为空")
	@Size(max = 64, message = "更新时间长度不能超过64")
	@TableField("update_time")
	private String updateTime;
}
